package com.ruoyi.common.base.ai.mapper;


import com.ruoyi.common.base.ai.domain.AIApiKey;
import com.ruoyi.common.base.ai.vo.AIApiKeyCache;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * apiKey管理Mapper接口
 *
 * @author gdk
 * @date 2023-05-29
 */
public interface AIApiKeyMapper {
    /**
     * 查询apiKey管理
     *
     * @param id apiKey管理主键
     * @return apiKey管理
     */
    public AIApiKey selectAIApiKeyById(Long id);

    /**
     * 查询apiKey管理列表
     *
     * @param aIApiKey apiKey管理
     * @return apiKey管理集合
     */
    public List<AIApiKey> selectAIApiKeyList(AIApiKey aIApiKey);

    /**
     * 新增apiKey管理
     *
     * @param aIApiKey apiKey管理
     * @return 结果
     */
    public int insertAIApiKey(AIApiKey aIApiKey);

    /**
     * 修改apiKey管理
     *
     * @param aIApiKey apiKey管理
     * @return 结果
     */
    public int updateAIApiKey(AIApiKey aIApiKey);

    /**
     * 删除apiKey管理
     *
     * @param id apiKey管理主键
     * @return 结果
     */
    public int deleteAIApiKeyById(Long id);

    /**
     * 批量逻辑删除
     *
     * @param ids       ids
     * @param condition 条件
     * @return {@link int}
     * @author gdk
     * @since 2023/5/29 20:02
     */
    public int removeLogicByIds(@Param("ids") Long[] ids,
                                @Param("condition") AIApiKey condition);

    /**
     * 停用密钥
     *
     * @param entity entity
     * @return {@link int}
     * @author gdk
     * @since 2023/5/29 17:11
     */
    int disable(AIApiKey entity);

    /**
     * 缓存数据
     *
     * @return {@link List< AIApiKeyCache>}
     * @author gdk
     * @since 2023/5/29 17:47
     */
    List<AIApiKeyCache> listCache();

    /**
     * 根据ids查询
     *
     * @param ids ids
     * @return {@link List< AIApiKeyCache>}
     * @author gdk
     * @since 2023/5/29 19:54
     */
    List<AIApiKeyCache> listCacheByIds(Long[] ids);
}
